﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace V82.ОбщиеМодули
{
	public partial class МодульРегламентныхЗаданий
	{

		public void ВыполнитьОбменДаннымиДляНастройкиОбмена(/*КодНастройки*/)
		{
			if(true/*НЕ ЗначениеЗаполнено(КодНастройки)*/)
			{
			}
			//НастройкаОбмена = Справочники.НастройкиОбменаДанными.НайтиПоКоду(КодНастройки);
			if(true/*НЕ ЗначениеЗаполнено(НастройкаОбмена)
		ИЛИ НастройкаОбмена.ПометкаУдаления*/)
			{
			}
			//ПроцедурыОбменаДанными.ВыполнитьОбменДаннымиПоПроизвольнойНастройке(НастройкаОбмена, Ложь);
		}

		public void ВыполнитьОтложенныеДвиженияДляНастройкиОбмена(/*КодНастройки*/)
		{
			if(true/*НЕ ЗначениеЗаполнено(КодНастройки)*/)
			{
			}
			//НастройкаОбмена = Справочники.НастройкиОбменаДанными.НайтиПоКоду(КодНастройки);
			if(true/*НЕ ЗначениеЗаполнено(НастройкаОбмена)
		ИЛИ НастройкаОбмена.ПометкаУдаления*/)
			{
			}
			//ПроцедурыОбменаДанными.ВыполнитьОтложенныеДвиженияПоНастройкеОбмена(НастройкаОбмена);
		}

		public void ОбновлениеИндексаПолнотекстовогоПоиска(/**/)
		{
			if(true/*ПолнотекстовыйПоиск.ПолучитьРежимПолнотекстовогоПоиска() = РежимПолнотекстовогоПоиска.Разрешить*/)
			{
				if(true/*НЕ ПолнотекстовыйПоиск.ИндексАктуален()*/)
				{
				}
			}
		}

		public void СлияниеИндексаПолнотекстовогоПоиска(/**/)
		{
			if(true/*ПолнотекстовыйПоиск.ПолучитьРежимПолнотекстовогоПоиска() = РежимПолнотекстовогоПоиска.Разрешить*/)
			{
			}
		}

		public void ПересчетИтоговРегистров(/**/)
		{
			//НаДату = НачалоМесяца(ТекущаяДата())-1;
			//ПересчетРегистров(РегистрыНакопления, НаДату, Метаданные.СвойстваОбъектов.ВидРегистраНакопления.Остатки);
			//ПересчетРегистров(РегистрыБухгалтерии, НаДату);
		}

		public void ПересчетРегистров(/*МенеджерРегистров, НаДату, ОграничениеПоВидуРегистра = Неопределено*/)
		{
		}

		public void ПересчитатьРегистрПоДате(/*МенеджерРегистра, НаДату*/)
		{
			if(true/*МенеджерРегистра.ПолучитьПериодРассчитанныхИтогов()<НаДату*/)
			{
				//МенеджерРегистра.УстановитьПериодРассчитанныхИтогов(НаДату);
			}
		}

		public void ПолучениеЭлектронныхСообщений(/**/)
		{
			if(true/*НЕ Константы.ИспользованиеВстроенногоПочтовогоКлиента.Получить()*/)
			{
			}
			/*ТекстЗапроса = 
	"ВЫБРАТЬ
	|	УчетныеЗаписиЭлектроннойПочты.Ссылка
	|ИЗ
	|	Справочник.УчетныеЗаписиЭлектроннойПочты КАК УчетныеЗаписиЭлектроннойПочты
	|ГДЕ
	|	УчетныеЗаписиЭлектроннойПочты.АвтоПолучениеОтправкаСообщений";*/
			//Запрос = Новый Запрос;
			//Запрос.Текст = ТекстЗапроса;
			//Выборка = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.Прямой);
			//УчетныеЗаписиДляПроверки = Новый Массив;
			while(true/*Выборка.Следующий()*/)
			{
				//УчетныеЗаписиДляПроверки.Добавить(Выборка.Ссылка);
			}
			/*;
	
	ТекстОшибок = "";*/
			//УправлениеЭлектроннойПочтой.ПолучениеОтправкаПисем(Неопределено, Справочники.Пользователи.ПустаяСсылка(),УчетныеЗаписиДляПроверки,,, Истина, Ложь, ТекстОшибок);
			if(true/*ПустаяСтрока(ТекстОшибок)*/)
			{
				/*ЗаписьЖурналаРегистрации("Получение электронных сообщений", 
			УровеньЖурналаРегистрации.Информация, Метаданные.Документы.ЭлектронноеПисьмо, ,
			"Получение электронных сообщений выполнено успешно");*/
			}
		}

		public void ВыполнитьОбменДаннымиДляНастройкиАвтоматическогоОбменаДанными(/*КодНастройки*/)
		{
			if(true/*НЕ ЗначениеЗаполнено(КодНастройки)*/)
			{
			}
			//НастройкаОбмена = Справочники.НастройкиВыполненияОбмена.НайтиПоКоду(КодНастройки);
			if(true/*НЕ ЗначениеЗаполнено(НастройкаОбмена)
		ИЛИ НастройкаОбмена.ПометкаУдаления*/)
			{
			}
			//ПроцедурыОбменаДанными.ВыполнитьОбменПоНастройкеАвтоматическогоВыполненияОбменаДанными(НастройкаОбмена, Ложь);
		}

		public void РасчетСебестоимости(/*Настройка*/)
		{
			/*// Убедимся, что ссылка соответствует существующему объекту
*/
			/*// Проверим, что по настройке включено автоматическое формирование
*/
			if(true/*НЕ Настройка.ФормироватьДокументыАвтоматически*/)
			{
				//ОбщегоНазначения.Сообщение("Для настройки, связанной с регламентным заданием, автоматическое формирование документов отключено");
			}
			/*// Заблокируем объект настройки
*/
			//ОбъектНастройки.Заблокировать();
			//СтруктураПараметров = Новый Структура("Организация, НастройкаЗакрытияМесяца, ВидОтраженияВУчете, Задержка");
			//ЗаполнитьЗначенияСвойств(СтруктураПараметров, ОбъектНастройки);
			//СтруктураПараметров.Вставить("ВыполняемыеДействия", ОбъектНастройки.ВыполняемыеДействия.Выгрузить());
			//УправлениеЗапасамиРасширеннаяАналитика.РасчитатьСебестоимость(СтруктураПараметров);
			//ОбъектНастройки.Разблокировать();
		}

		public void РасчетЦеныНоменклатурыРеглЗадание(/*Настройка*/)
		{
			//РасчетЦеныНоменклатуры(Настройка, Ложь);
		}

		public void РасчетЦеныНоменклатуры(/*Настройка, ВызываетсяИзФормыНастройки = Ложь*/)
		{
			/*// Убедимся, что ссылка соответствует существующему объекту
*/
			/*// Проверим, что по настройке включено автоматическое формирование
*/
			if(true/*НЕ ВызываетсяИзФормыНастройки
	 И НЕ Настройка.ФормироватьДокументыАвтоматически*/)
			{
				//ОбщегоНазначения.Сообщение("Для настройки, связанной с регламентным заданием, автоматическое формирование документов отключено");
			}
			/*// Заблокируем объект настройки
*/
			if(true/*НЕ ВызываетсяИзФормыНастройки*/)
			{
				//ОбъектНастройки.Заблокировать();
			}
			//СтруктураПараметров = Новый Структура("ТипЦен, СоздаватьНовыйДокумент, ВидОтраженияВУчете, ПорядокФормированияЦены, НастройкаРасчетаСебестоимости");
			//ЗаполнитьЗначенияСвойств(СтруктураПараметров, ОбъектНастройки);
			if(true/*СтруктураПараметров.ВидОтраженияВУчете = Перечисления.ВидыОтраженияВУчете.ОтражатьВУправленческомУчете*/)
			{
				//СхемаКомпоновкиДанных = ОбъектНастройки.ПолучитьМакет("НастройкаРасчетаУпрУчет");
			}
			//НастройкиКомпоновщика = ОбъектНастройки.НастройкиКомпоновщика.Получить();
			//КомпоновщикМакетаКомпоновкиДанных = Новый КомпоновщикМакетаКомпоновкиДанных;
			//МакетКомпоновкиДанных = КомпоновщикМакетаКомпоновкиДанных.Выполнить(СхемаКомпоновкиДанных, НастройкиКомпоновщика);
			//Запрос = Новый Запрос(МакетКомпоновкиДанных.НаборыДанных.РасчетЦеныНоменклатуры.Запрос);
			//ОписаниеПараметровЗапроса = Запрос.НайтиПараметры();
			//УправлениеЗапасамиРасширеннаяАналитика.РасчитатьЦенуНоменклатуры(СтруктураПараметров, Запрос.Текст, Запрос.Параметры);
			if(true/*НЕ ВызываетсяИзФормыНастройки*/)
			{
				//ОбъектНастройки.Разблокировать();
			}
		}

		public void ДопроведениеДокументов(/*Настройка*/)
		{
			/*// Убедимся, что ссылка соответствует существующему объекту
*/
			/*// Проверим, что по настройке включено автоматическое допроведение
*/
			if(true/*НЕ Настройка.ФормироватьДокументыАвтоматически*/)
			{
				//ОбщегоНазначения.Сообщение("Для настройки допроведения, связанной с регламентным заданием, автоматическое допроведение отключено");
			}
			/*// Если указан запуск по числам месяца, проверим наступило ли время выполнения регламентного задания
*/
			if(true/*Настройка.НомерДняНачалоЗапуска <> 0 И Настройка.НомерДняКонецЗапуска <> 0*/)
			{
				//флНеобходимЗапуск = Ложь;
				if(true/*Настройка.НомерДняНачалоЗапуска <= Настройка.НомерДняКонецЗапуска*/)
				{
					/*//Интервал запуска в пределах одного месяца (например с 20-го по 25-е)
*/
					//СегодняшнийДень = День(ТекущаяДата());
					if(true/*Настройка.НомерДняНачалоЗапуска <= СегодняшнийДень И Настройка.НомерДняКонецЗапуска >= СегодняшнийДень*/)
					{
						//флНеобходимЗапуск = Истина;
					}
				}
				if(true/*НЕ флНеобходимЗапуск*/)
				{
				}
			}
			/*// Заблокируем объект настройки
*/
			//ОбъектНастройки.Заблокировать();
			//ПериодДопроведения 		= ОтложенноеПроведениеДокументов.ОпределитьПериодДопроведения(Настройка);
			//НачалоИнтервалаДопроведения 	= ПериодДопроведения.НачалоИнтервала;
			//КонецИнтервалаДопроведения 	= ПериодДопроведения.КонецИнтервала;
			/*//Определим список организаций
*/
			//Запрос = Новый Запрос();
			/*Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ РАЗРЕШЕННЫЕ
	|	Организация,
	|	ДатаНачалаДействия КАК ДатаНачалаОтложенногоПроведения
	|ИЗ
	|	РегистрСведений.НастройкаОтложенногоПроведения
	|ГДЕ НастройкаДопроведенияДокументов = &ТекНастройка
	|УПОРЯДОЧИТЬ ПО Организация";*/
			//Запрос.УстановитьПараметр("ТекНастройка", Настройка);
			//РезультатЗапроса = Запрос.Выполнить();
			if(true/*РезультатЗапроса.Пустой()*/)
			{
				//ОбщегоНазначения.Сообщение("Настройка допроведения не назначена ни одной организации");
			}
			//ТаблицаОрганизаций = РезультатЗапроса.Выгрузить();
			/*ПараметрыДопроведения = Новый Структура("ДопроводитьВсеДокументы, 
							|ДатаНачала, ДатаОкончания", 
							Настройка.ДопроводитьВсеДокументы, НачалоДня(НачалоИнтервалаДопроведения), 
							КонецДня(КонецИнтервалаДопроведения));*/
			//ОтложенноеПроведениеДокументов.ВыполнитьДопроведениеДокументовПоСпискуОрганизаций(ТаблицаОрганизаций, ПараметрыДопроведения);
			//ОбъектНастройки.Разблокировать();
		}

		public void ОбновлениеАгрегатов(/**/)
		{
		}

		public void ПерестроениеАгрегатов(/**/)
		{
		}
		// Метод регламентного задания РегламентноеФормированиеДокументовПоНДС
		//
		// Параметры
		//  Настройка - ссылка на элемент справочника НастройкиФормированияДокументовПоНДС
		//

		public void РегламентноеФормированиеДокументовПоНДС(/*Настройка*/)
		{
			/*// Убедимся, что ссылка соответствует существующему объекту
*/
			/*// Проверим, что по настройке включено автоматическое формирование
*/
			if(true/*НЕ Настройка.ФормироватьДокументыАвтоматически*/)
			{
				//ОбщегоНазначения.Сообщение("Для настройки, связанной с регламентным заданием, автоматическое формирование документов отключено");
			}
			/*// Заблокируем объект настройки
*/
			//ОбъектНастройки.Заблокировать();
			//СтруктураПараметров = Новый Структура("Организация, Дата");
			//ЗаполнитьЗначенияСвойств(СтруктураПараметров, ОбъектНастройки);
			//СтруктураПараметров.Дата = НачалоМесяца(ТекущаяДата()) - 1;
			/*// Документы формируются за прошлый налоговый период (квартал)
*/
			//УчетНДСФормированиеДвижений.СформироватьРегламентныеДокументыПоНДС(СтруктураПараметров);
			//ОбъектНастройки.Разблокировать();
		}
	}
}
